package Java_promotion_136_228.Java136_146;

/*
如何进行字符串的内容比较?
如果使用==比较，那么进行的是地址值的相同判断。
如果就是希望进行字符串内容的相互比较，那么就需要使用String当中的成员方法；
public boolean equals（Object obj）；进行字符串内容的比较严格区分大小写。
参数obj就是另一个对象（跟谁比）
Object也是一种类型，可以接受任何类型的数据
public boolean equalsIgnoreCase(String str).进行字符串内容的比较，但是忽略大小写。
注意事项：
要想进行字符串内容的比较，一定要使用equals方法不要使用==运算==是地址值的比较
equals方法的使用具有对称性a.equals(b)  and  b.equals(a)  效果是一样的。
小技巧：如果equals方法需要比较的两个字符串中，有一个常量，那么尽量将常量写在前面。
调用方法的时候，对象名当中如果存储的是null值，那么将会发生空指针异常
NullPointerException
直接写上的双引号就是字符串对象，所以用双引号直接点儿也能调用方法
*/
public class String_comparison {
    public static void main(String[] args) {
        char[] array = {'a', 'b', 'c'};
        String str1 = new String(array);
        String str2 = "abc";
        System.out.println(str1 == str2);//false
//        进行内容比较就要使用equals方法
//        拿着str和str2进行内容上的比较。
        boolean same = str1.equals(str2);
        System.out.println(same);
        System.out.println(str1.equals(str2));
        System.out.println("===============");

        String str3 = null;
        System.out.println("abc".equals(str3));
//        System.out.println(str3.equals("abc"));//错误写法
        System.out.println("===============");

        String str4 = "hello";
        String str5 = "Hello";
        System.out.println(str4.equals(str5));
        System.out.println(str4.equalsIgnoreCase(str5));
    }
}
